#pragma once

#include <boost/filesystem.hpp>

namespace Proton 
{
	namespace Managers
	{
		using namespace boost::filesystem;

		class PFile
		{
			path* filePath;
			size_t dataSize;			
			char* pData;
			bool owner;
		public:
			PFile(path _filePath);
			PFile(const char* _filePath);
			PFile(path _filePath, char* _pData, bool _isDataOwner, size_t _dataSize);
			PFile(const char* _filePath, char* _pData, bool _isDataOwner, size_t _dataSize);			
			virtual ~PFile(void);

			char* getDataPtr(){ return pData; };
			size_t getDataSize(){ return dataSize; };
			path getFilePath() { return *filePath; }

			void setFilePath(path _filePath);
			void setFilePath(const char* _filePath);
			void setDataPtr(char* _pData);
			void setDataSize(size_t _dataSize);
		};

	}
}